import Vue from 'vue'
import Vuex from 'vuex'
import { auInfo } from '../api/my'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    userInfo: '', // 用户信息
    // 不能通过有token判断用户是否已经登入 因为token获取后再本地存储 token也有可能过期啦
    // 因此需要设置一个状态 判断用户是否登入 已经登入了值就是true 默认没登入false
    isLogin: false // 用户是否已登入
  },
  mutations: {
    // setUserInfo  setLoginState方法括号里面是形参 形参可以随便定义 不一定要写state payload
    // 写成其他的下面函数内容也要换成其他的 如下: 只不过用state语义更强一点 因此还是 用state把 还有那个第二个参数
    // 也用payload 这个是载荷的意思 也就是vuex里面方法参数
    // setUserInfo (xxx, value) {
    //   xxx.userInfo = value
    // },

    // 设置用户信息
    setUserInfo (state, payload) {
      state.userInfo = payload
    },
    // 设置用户登入状态
    setLoginState (state, payload) {
      state.isLogin = payload
    }
  },
  actions: {
    getUserInfo (state) {
      auInfo().then(res => {
        state.commit('setUserInfo', res.data.data)
        state.commit('setLoginState', true)
      })
    }
  },
  modules: {}
})
